From 08d644c4a53bf6068db1a10a217965ef9d749b83 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Wed, 7 Dec 2016 14:05:34 +0100 Subject: [PATCH] widget: Warn if children are left in finalize() --- gtk/gtkwidget.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index c644ac0f7b..bbf5f3ca16 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -10615,6 +10615,19 @@ gtk_widget_finalize (GObject *object) g_list_free_full (priv->event_controllers, g_free); priv->event_controllers = NULL; + if (_gtk_widget_get_first_child (widget) != NULL) + { + GtkWidget *child; + g_warning ("Finalizing %s %p, but it still has children left:", + gtk_widget_get_name (widget), widget); + for (child = _gtk_widget_get_first_child (widget); + child != NULL; + child = _gtk_widget_get_next_sibling (child)) + { + g_warning (" - %s %p", gtk_widget_get_name (child), child); + } + } + if (g_object_is_floating (object)) g_warning ("A floating object was finalized. This means that someone\n" "called g_object_unref() on an object that had only a floating\n" -- 2.30.2